package cz.mzk.oai.metadataRepository.analysis.cli;

import java.util.ArrayList;
import java.util.List;
import org.apache.commons.cli.Option;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Martin Řehánek (rehan at mzk.cz)
 */
public class DefinedOptions {

    public final Option PROPERTIES_FILE = new Option("properties_file", "properties-file", true, "Propeties file");
    public final Option DETAILED_PRINT = new Option("detailed_print", "detailed-print", false, "Detailed print");
    public final Option METADATA_FORMAT = new Option("metadata_format", "metadata-format", true, "Format of records to be analyzed");
    public final Option ANALYSIS_TYPE = new Option("analysis_type", "analysis-type", true, "Type of analysis for the record");
    public final Option COLLECTION = new Option("collection", "collection", true, "Collection to be analyzed");
    public final Option PRINT_MISSING_VALUE = new Option("print_missing", "print-missing", false, "Print those records that have no value of xpath that is being analyzed");
    public final Option PRINT_SINGLE_VALUE = new Option("print_single", "print-single", false, "Print those records that have one value of xpath that is being analyzed");
    public final Option PRINT_MULTIPLE_VALUES = new Option("print_multiple", "print-multiple", false, "Print those records that have multiple values of xpath that is being analyzed");
    public final Option PRINT_IDENTIFIERS = new Option("print_identifiers", "print-identifiers", false, "Print identifier of records that belong to each multiset");

    {
        METADATA_FORMAT.setRequired(true);
        PROPERTIES_FILE.setRequired(true);
        ANALYSIS_TYPE.setRequired(true);
    }

    public List<Option> getAllOptions() {
        List<Option> result = new ArrayList<Option>();
        result.add(METADATA_FORMAT);
        result.add(PROPERTIES_FILE);
        result.add(DETAILED_PRINT);
        result.add(ANALYSIS_TYPE);
        result.add(COLLECTION);
        result.add(PRINT_MISSING_VALUE);
        result.add(PRINT_SINGLE_VALUE);
        result.add(PRINT_MULTIPLE_VALUES);
        result.add(PRINT_IDENTIFIERS);
        return result;
    }
}
